package com.briup.jdk8.day01;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

/**
 * 反射的面试题
 * 要求：向一个List<Integer>中插入其他数据类型
 * 知识点：
 * 1、泛型作用和泛型擦除
 * 2、反射的功能，使用
 */
public class Test1 {
    public static void main(String[] args) throws Exception {
        List<Integer> list = new ArrayList<>();
        Class<? extends List> clazz = list.getClass();
        // 准确获取add方法
        Method addMethod = clazz.getMethod("add", Object.class);
        // 执行add方法
        addMethod.invoke(list,"hello");
        addMethod.invoke(list,123);
        addMethod.invoke(list,3.14);
        addMethod.invoke(list,3.1415926f);
        addMethod.invoke(list,true);
        // 输出
        System.out.println("list = " + list);
    }
}
